4 - Rechnerarchitektur [ID:10858]
50 von 769 angezeigt

Ja, gut, wir können starten. Dann schönen guten Tag, hallo zur Vorlesung. Rechner, ich

tue die Woche. Ich habe, was mich noch umgetrieben hat, da war doch noch mal die Frage, wie groß

ist so eine Branch History Tabelle. Ich habe irgendwo, da bilde ich mir einen, hätte ich

mal gelesen, dass in einer Intel Architektur 512 solcher Speicheradressen abgelegt werden.

Ich habe wirklich nichts mehr gefunden. Ich habe fast eine Stunde lang herumgesucht. Das

einzige, was ich gefunden habe, jetzt noch, ja, das war noch mit die beste Äußerung,

ist das hier. The Branch Target Buffer in Sandy Bridge is bigger than a halem. According

to unofficial rumors, also gemäß nichtoffizielle Gerüchte, dass ich irgendwo mal eine konkrete

Größe rausbekommen hätte, ist mir jetzt nicht gelungen. Aber es sind also wohl so zwischen

512 und 4.096 Einträge, vielleicht maximal. Ja, was ich auch noch mal nachgeguckt habe,

ist, da hat noch jemand mal gefragt, wo die, wie mit diesen NOP Operations, also die können

sie schon durchaus doch vom Compiler erzeugt werden. Und allerdings wäre eigentlich schlecht,

also wahrscheinlich dann, wenn er feststellt, es ist ein Hesser, den auch irgendwie die

Hardware nicht auflösen kann, dann führt er da NOP ein, weil ansonsten macht es eigentlich

keinen Sinn. Also NOP bedeutet, also wenn ich die Pipeline in der Abarbeitung eben nicht

anhalten will, ich will aber vermeiden, dass sich Hessers auswirken. Dann baue ich diese

NOP Operations ein und NOP Operations heißt eben, dann fließt die Information, der Befehl

einfach durch die Pipeline durch und es werden, dieser NOP Befehl und es werden keine Veränderungen

an den Caches, an den Registern und ansonstigen Einträgen vorgenommen. Ja, gut, so, was steht

heute auf dem Programm? Achso, und bei den Delayed Branches, da bin ich mir also ziemlich

sicher, diese Delayed Branches werden in den Intel Architekturen nicht benutzt. Ich habe

mal die letzte Weisheit in all diesen Fragen, wobei es die, schau mal, eine Frage ist,

wie weise das tatsächlich ist, dieses Architektures Optimization Reference Manual von Intel 64

und diesen Intel Architekturen 32, also den älteren Architekturen, das ist also 670 Seiten

stark dieses Dokument und geht schon manchmal ins Detail rein. Also, da werden ein paar

Geheimnisse dann doch mal preisgegeben. Die 76 Seiten habe ich jetzt nicht durchgelesen,

aber ich habe einfach mal mir suchen lassen nach Delayed Branch, ich habe nichts gefunden.

Also, ich vermute mal, dass die wirklich da nicht drin sind. Also, was ich gelesen habe

in älteren RISC Prozessoren und bei digitalen Signalprozessoren, da werden häufig solche

Delayed Branch Konzepte verwendet. Und, naja, das hatte ich auch noch in Nachtrag, es ist

tatsächlich schwierig, drei Slots zu füllen, in meinem Beispiel war das noch hübsch, das

war entsprechend konstruiert, sondern zum meisten haben die dann auch nur einen Delay

Slot und ein Delay Slot ist möglicherweise jetzt auch nicht so effizient gewesen, sodass

bei den Intel Architekturen da nicht weiter verfolgt wird. So, gut, dann gehen wir mal

also in die Vorlesung jetzt rein und zwar rAussehen. Gut, also wo sind wir letzte Woche

angekommen? Cache Architekturen, das werden wir heute wahrscheinlich mal anfangen. Ja,

wir hatten uns also mit diesem Datenhessitzer auseinandergesetzt, insbesondere mit den Write

After Read und Write After Write Hesserts und haben diese Scoreboard Architektur da kennengelernt,

mit dem man die zumindest vermeiden kann. Also was heißt vermeiden? Indem man die Auswirkungen

solche Hesserts ausschließt. Also es können dadurch keine Fehler passieren. Noch besser

wäre es, wenn man diese Hesserts, die sind ja doch in gewisser Weise ausgemacht, diese

Write After Write und Write After Read Hesserts, das war nochmal die Scoreboard Architektur,

nochmal kurz zu wiederholen, da hatte ich also diese vier Phasen meiner Scoreboard Architektur.

Okay, das war es. So, Befehl holen und beim Befehl holen gucke ich schon erstmal nach,

ob es überhaupt noch einen Befehl gibt, der in der Pipeline drin ist, der ins gleiche

Register schreiben will, wie der, den ich gerade hole, dann lasse ich das weg. Damit vermeide

ich schon mal ein Write After Write Hessert mit der Holzhammer Methode und dann hier in

der ersten Stufe, da gucke ich nach, ob Read After Write Hesserts bestehen. Kann ja Read

After Write Hesserts bestehen, dann weise ich den einzelnen Ausführungseinheiten, solche

Fehler zu und dann können die starten, wenn alle Operanten da sind und dann beim Rückschreiben,

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:32:33 Min

Aufnahmedatum

2013-11-07

Hochgeladen am

2019-04-30 07:09:03

Sprache

de-DE

Die Vorlesung baut auf die in den Grundlagen der Rechnerarchitektur und -organisation vermittelten Inhalte auf und setzt diese mit weiterführenden Themen fort. Es werden zunächst grundlegende fortgeschrittene Techniken bei Pipelineverarbeitung und Cachezugriffen in modernen Prozessoren und Parallelrechnern behandelt. Ferner wird die Architektur von Spezialprozessoren, z.B. DSPs und Embedded Prozessoren behandelt. Es wird aufgezeigt, wie diese Techniken in konkreten Architekturen (Intel Nehalem, GPGPU, Cell BE, TMS320 DSP, Embedded Prozessor ZPU) verwendet werden. Zur Vorlesung werden eine Tafel- und eine Rechnerübung angeboten, durch deren erfolgreiche Beteiligung abgestuft mit der Vorlesung 5 bzw. 7,5 ECTS erworben werden können. In den Tafelübungen werden die in der Vorlesung vermittelten Techniken durch zu lösende Aufgaben vertieft. In der Rechnerübung soll u.a. ein einfacher Vielkern-Prozessor auf Basis des ZPU-Prozessors mit Simulationswerkzeugen aufgebaut werden. Im Einzelnen werden folgende Themen behandelt:
  • Organisationsaspekte von CISC und RISC-Prozessoren

  • Behandlung von Hazards in Pipelines

  • Fortgeschrittene Techniken der dynamischen Sprungvorhersage

  • Fortgeschritten Cachetechniken, Cache-Kohärenz

  • Ausnutzen von Cacheeffekten

  • Architekturen von Digitalen Signalprozessoren

  • Architekturen homogener und heterogener Multikern-Prozessoren (Intel Corei7, Nvidia GPUs, Cell BE)

  • Architektur von Parallelrechnern (Clusterrechner, Superrechner)

  • Effiziente Hardware-nahe Programmierung von Mulitkern-Prozessoren (OpenMP, SSE, CUDA, OpenCL)

  • Leistungsmodellierung und -analyse von Multikern-Prozessoren (Roofline-Modell)

Empfohlene Literatur
  • Patterson/Hennessy: Computer Organization und Design
  • Hennessy/Patterson: Computer Architecture - A Quantitative Approach

  • Stallings: Computer Organization and Architecture

  • Märtin: Rechnerarchitekturen

Einbetten
Wordpress FAU Plugin
iFrame
Teilen